package org.chen.common.task;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

import java.time.LocalDate;
import java.util.List;

/**
 * 定时任务创建请求 - 支持动态日期配置
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class ScheduledTaskRequest {
    private String name;                    // 任务名称

    // 基础搜索条件
    private String departure;               // 出发城市代码
    private String destination;             // 目的地城市代码
    private String tripType;                // 行程类型: oneway/roundtrip
    private int adults;                     // 成人数量
    private int children;                   // 儿童数量
    private int infants;                    // 婴儿数量
    private String cabinClass;              // 舱位等级

    // 动态日期配置
    private LocalDate baseDate;             // 基准开始日期
    private int crawlCycle;                 // 爬取周期（天数）
    private int executionCount;             // 每次执行的次数
    private int roundTripDays;              // 往返行程天数（往返时使用）

    // 调度和导出配置
    private String cronExpression;          // Cron表达式
    private String exportPath;              // 导出路径
    private boolean exportLowestPriceOnly;  // 是否只导出最低价格

    // 邮件通知配置
    private boolean emailNotification;      // 是否启用邮件通知
    private List<String> emailRecipients;  // 邮件接收者
}